package br.unifor.lares.persistense;

import java.util.List;

import javax.persistence.EntityManager;

import br.unifor.lares.entities.Usuario;

public class UsuarioDAO {
	public void inserir(Usuario u) {
		EntityManager em = JPAResourceBeans.getEntityManager();

		try {
			em.getTransaction().begin();
			em.persist(u);
			em.getTransaction().commit();
		} catch (RuntimeException e) {
			em.getTransaction().rollback();
		} finally {
			em.close();
		}
	}

	public void atualizarUsuario(Usuario novoDadoUsuario) {
		EntityManager em = JPAResourceBeans.getEntityManager();

		try {
			em.getTransaction().begin();

			Usuario oldUserData = em.find(Usuario.class,
					novoDadoUsuario.getUsuarioid());
			oldUserData.setUsername(novoDadoUsuario.getUsername());
			oldUserData.setSenha(novoDadoUsuario.getSenha());

			em.getTransaction().commit();
		} catch (RuntimeException e) {
			em.getTransaction().rollback();
		} finally {
			em.close();
		}
	}

	public void excluir(int codigo) {
		EntityManager em = JPAResourceBeans.getEntityManager();

		try {
			em.getTransaction().begin();

			Usuario u = em.find(Usuario.class, codigo);
			em.remove(u);

			em.getTransaction().commit();
		} catch (RuntimeException e) {
			em.getTransaction().rollback();
		} finally {
			em.close();
		}
	}

	@SuppressWarnings("unchecked")
	public List<Usuario> listar() {
		EntityManager em = JPAResourceBeans.getEntityManager();
		return em.createQuery("select u from Usuario u").getResultList();
	}

}
